package 异常3;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ExceptionDemo03 {
    public static void main(String[] args) {
        System.out.println("开始");
        try {
            method();
        } catch (ArrayIndexOutOfBoundsException e) {
            e.printStackTrace();
        }
        System.out.println("结束");
    }

    /*
    * 编译时异常
    * 都是Exception类及其子类
    * 必须显示处理，否则程序就会发生错误，无法通过编译
    * 采用throws这种方案，谁调用，谁处理
    * */
    public static void method2() throws ParseException{
        String s="2048-08-09";
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date d = sdf.parse(s);
        System.out.println(d);
    }

    /*
    * 运行时异常
    * 都是RuntimeException类及其子类
    * 无需显示处理，也可以和编译时异常一样处理
    * 运行时异常可以不处理，出现问题后，需要我们回来修改代码
    * */
    public static void method() throws ArrayIndexOutOfBoundsException{
        int[] arr={1,2,3};
        System.out.println(arr[3]);
    }
}